package com.ruoyi.qiushi.domain.mall;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 商品对象 product_spu
 *
 * @author ruoyi
 * @date 2023-12-26
 */
public class ProductSpu extends BaseEntity {
    private static final long serialVersionUID = 1L;

    private String imageList;

    public String getImageList() {
        return imageList;
    }

    public void setImageList(String imageList) {
        this.imageList = imageList;
    }

    /**
     * $column.columnComment
     */
    private Long id;

    /**
     * 名称
     */
    @Excel(name = "名称")
    private String name;

    /**
     * 图片
     */
    @Excel(name = "图片")
    private String image;

    /**
     * 出售价格
     */
    @Excel(name = "出售价格")
    private BigDecimal price;

    /**
     * 积分
     */
    @Excel(name = "积分")
    private BigDecimal point;

    /**
     * 连续包月价格
     */
    @Excel(name = "连续包月价格")
    private BigDecimal monthlyPrice;

    /**
     * 连续包季价格
     */
    @Excel(name = "连续包季价格")
    private BigDecimal quarterlyPrice;

    /**
     * 连续包年价格
     */
    @Excel(name = "连续包年价格")
    private BigDecimal annualPrice;

    /**
     * 设备类型 qiushi_device_type.id  (服务商品)
     */
    @Excel(name = "设备类型 qiushi_device_type.id  (服务商品)")
    private Long deviceType;

    /**
     * 表单id
     */
    @Excel(name = "表单id")
    private Long formId;

    /**
     * 运费
     */
    @Excel(name = "运费")
    private BigDecimal freight;

    /**
     * 销售数量
     */
    @Excel(name = "销售数量")
    private Long sellCount;

    /**
     * 库存数量
     */
    @Excel(name = "库存数量")
    private Long stockCount;

    /**
     * 是否推荐 0 否 1是
     */
    @Excel(name = "是否推荐 0 否 1是")
    private String isRecommend;

    /**
     * 返利积分（仅限服务商品）
     */
    @Excel(name = "返利积分", readConverterExp = "仅=限服务商品")
    private BigDecimal rebatePoint;

    /**
     * 上级返利积分（仅限服务商品）
     */
    @Excel(name = "上级返利积分", readConverterExp = "仅=限服务商品")
    private BigDecimal inviterRebatePoint;

    /**
     * 分类id
     */
    @Excel(name = "分类id")
    private Long categoryId;

    /**
     * 分类名称
     */
    @Excel(name = "分类名称")
    private String categoryName;

    /**
     * 购买须知
     */
    @Excel(name = "购买须知")
    private String buyNotes;

    /**
     * 商品详情
     */
    @Excel(name = "商品详情")
    private String detailedDesc;

    /**
     * 商品类型  1:积分商品 2:普通商品 3:服务商品
     */
    @Excel(name = "商品类型  1:积分商品 2:普通商品 3:服务商品")
    private String type;

    /**
     * 1上架 2下架
     */
    @Excel(name = "1上架 2下架  ")
    private String status;

    /**
     * 0正常 1删除
     */
    private String delFlag;

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setImage(String image) {
        this.image = image;
    }

    public String getImage() {
        return image;
    }

    public void setPrice(BigDecimal price) {
        this.price = price;
    }

    public BigDecimal getPrice() {
        return price;
    }

    public void setPoint(BigDecimal point) {
        this.point = point;
    }

    public BigDecimal getPoint() {
        return point;
    }

    public void setMonthlyPrice(BigDecimal monthlyPrice) {
        this.monthlyPrice = monthlyPrice;
    }

    public BigDecimal getMonthlyPrice() {
        return monthlyPrice;
    }

    public void setQuarterlyPrice(BigDecimal quarterlyPrice) {
        this.quarterlyPrice = quarterlyPrice;
    }

    public BigDecimal getQuarterlyPrice() {
        return quarterlyPrice;
    }

    public void setAnnualPrice(BigDecimal annualPrice) {
        this.annualPrice = annualPrice;
    }

    public BigDecimal getAnnualPrice() {
        return annualPrice;
    }

    public void setDeviceType(Long deviceType) {
        this.deviceType = deviceType;
    }

    public Long getDeviceType() {
        return deviceType;
    }

    public void setFormId(Long formId) {
        this.formId = formId;
    }

    public Long getFormId() {
        return formId;
    }

    public void setFreight(BigDecimal freight) {
        this.freight = freight;
    }

    public BigDecimal getFreight() {
        return freight;
    }

    public void setSellCount(Long sellCount) {
        this.sellCount = sellCount;
    }

    public Long getSellCount() {
        return sellCount;
    }

    public void setStockCount(Long stockCount) {
        this.stockCount = stockCount;
    }

    public Long getStockCount() {
        return stockCount;
    }

    public void setIsRecommend(String isRecommend) {
        this.isRecommend = isRecommend;
    }

    public String getIsRecommend() {
        return isRecommend;
    }

    public void setRebatePoint(BigDecimal rebatePoint) {
        this.rebatePoint = rebatePoint;
    }

    public BigDecimal getRebatePoint() {
        return rebatePoint;
    }

    public void setInviterRebatePoint(BigDecimal inviterRebatePoint) {
        this.inviterRebatePoint = inviterRebatePoint;
    }

    public BigDecimal getInviterRebatePoint() {
        return inviterRebatePoint;
    }

    public void setCategoryId(Long categoryId) {
        this.categoryId = categoryId;
    }

    public Long getCategoryId() {
        return categoryId;
    }

    public void setCategoryName(String categoryName) {
        this.categoryName = categoryName;
    }

    public String getCategoryName() {
        return categoryName;
    }

    public void setBuyNotes(String buyNotes) {
        this.buyNotes = buyNotes;
    }

    public String getBuyNotes() {
        return buyNotes;
    }

    public void setDetailedDesc(String detailedDesc) {
        this.detailedDesc = detailedDesc;
    }

    public String getDetailedDesc() {
        return detailedDesc;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getType() {
        return type;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getStatus() {
        return status;
    }

    public void setDelFlag(String delFlag) {
        this.delFlag = delFlag;
    }

    public String getDelFlag() {
        return delFlag;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("name", getName())
                .append("image", getImage())
                .append("price", getPrice())
                .append("point", getPoint())
                .append("monthlyPrice", getMonthlyPrice())
                .append("quarterlyPrice", getQuarterlyPrice())
                .append("annualPrice", getAnnualPrice())
                .append("deviceType", getDeviceType())
                .append("formId", getFormId())
                .append("freight", getFreight())
                .append("sellCount", getSellCount())
                .append("stockCount", getStockCount())
                .append("isRecommend", getIsRecommend())
                .append("rebatePoint", getRebatePoint())
                .append("inviterRebatePoint", getInviterRebatePoint())
                .append("categoryId", getCategoryId())
                .append("categoryName", getCategoryName())
                .append("buyNotes", getBuyNotes())
                .append("detailedDesc", getDetailedDesc())
                .append("type", getType())
                .append("status", getStatus())
                .append("delFlag", getDelFlag())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .toString();
    }
}
